home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / MoviesFormat.a < prev    next >
Text File  |  1996-05-01  |  19KB  |  473 lines

  1. ;
  2. ;    File:        MoviesFormat.a
  3. ;
  4. ;    Contains:    QuickTime Interfaces.
  5. ;
  6. ;    Version:    Technology:    QuickTime 2.1
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__MOVIESFORMAT__') = 'UNDEFINED' THEN
  19. __MOVIESFORMAT__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__WINDOWS__') = 'UNDEFINED' THEN
  25.     include 'Windows.a'
  26.     ENDIF
  27.     IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
  28.     include 'ImageCompression.a'
  29.     ENDIF
  30.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  31.     include 'Movies.a'
  32.     ENDIF
  33.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  34.  
  35. kMovieVersion                    EQU        0                    ; version number of the format here described 
  36. ;
  37. ;***************************************
  38. ;*
  39. ;*   General Types -
  40. ;*        These types are used in more than one of the
  41. ;*        directory types.
  42. ;*
  43. ;***************************************
  44. ;
  45. ;  MoviesUserData is the type used for user data in movie and track directories 
  46. MoviesUserData            RECORD 0
  47. size                     ds.l    1                ; offset: $0 (0)        ;  size of this user data 
  48. udType                     ds.l    1                ; offset: $4 (4)        ;  type of user data 
  49. data                     ds.b    1                ; offset: $8 (8) <-- really an array of length one ;  the user data 
  50.                          ORG 10
  51. sizeof                     EQU *                    ; size:   $A (10)
  52.                         ENDR
  53. UserDataAtom            RECORD 0
  54. size                     ds.l    1                ; offset: $0 (0)
  55. atomType                 ds.l    1                ; offset: $4 (4)
  56. userData                 ds        MoviesUserData ; offset: $8 (8) <-- really an array of length one
  57. sizeof                     EQU *                    ; size:   $12 (18)
  58.                         ENDR
  59. ;
  60. ;***************************************
  61. ;*
  62. ;*   MediaDirectory information -
  63. ;*        The MediaDirectory is tightly coupled to the data.
  64. ;*
  65. ;***************************************
  66. ;
  67. SampleDescriptionAtom    RECORD 0
  68. size                     ds.l    1                ; offset: $0 (0)
  69. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stsd' 
  70. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  71. numEntries                 ds.l    1                ; offset: $C (12)
  72. sampleDescTable             ds        SampleDescription ; offset: $10 (16) <-- really an array of length one
  73. sizeof                     EQU *                    ; size:   $20 (32)
  74.                         ENDR
  75. ;  TimeToSampleNum maps physical sample time to physical sample number. 
  76. TimeToSampleNum            RECORD 0
  77. sampleCount                 ds.l    1                ; offset: $0 (0)
  78. sampleDuration             ds.l    1                ; offset: $4 (4)
  79. sizeof                     EQU *                    ; size:   $8 (8)
  80.                         ENDR
  81. TimeToSampleNumAtom        RECORD 0
  82. size                     ds.l    1                ; offset: $0 (0)
  83. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stts' 
  84. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  85. numEntries                 ds.l    1                ; offset: $C (12)
  86. timeToSampleNumTable     ds        TimeToSampleNum ; offset: $10 (16) <-- really an array of length one
  87. sizeof                     EQU *                    ; size:   $18 (24)
  88.                         ENDR
  89. ;  SyncSamples is a list of the physical samples which are self contained. 
  90. SyncSampleAtom            RECORD 0
  91. size                     ds.l    1                ; offset: $0 (0)
  92. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stss' 
  93. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  94. numEntries                 ds.l    1                ; offset: $C (12)
  95. syncSampleTable             ds.l    1                ; offset: $10 (16) <-- really an array of length one
  96. sizeof                     EQU *                    ; size:   $14 (20)
  97.                         ENDR
  98. ;  SampleToChunk maps physical sample number to chunk number. 
  99. ;  same as SampleToChunk, but redundant first sample is removed 
  100. SampleToChunk            RECORD 0
  101. firstChunk                 ds.l    1                ; offset: $0 (0)
  102. samplesPerChunk             ds.l    1                ; offset: $4 (4)
  103. sampleDescriptionID         ds.l    1                ; offset: $8 (8)
  104. sizeof                     EQU *                    ; size:   $C (12)
  105.                         ENDR
  106. SampleToChunkAtom        RECORD 0
  107. size                     ds.l    1                ; offset: $0 (0)
  108. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stsc' 
  109. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  110. numEntries                 ds.l    1                ; offset: $C (12)
  111. sampleToChunkTable         ds        SampleToChunk    ; offset: $10 (16) <-- really an array of length one
  112. sizeof                     EQU *                    ; size:   $1C (28)
  113.                         ENDR
  114. ChunkOffsetAtom            RECORD 0
  115. size                     ds.l    1                ; offset: $0 (0)
  116. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stco' 
  117. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  118. numEntries                 ds.l    1                ; offset: $C (12)
  119. chunkOffsetTable         ds.l    1                ; offset: $10 (16) <-- really an array of length one
  120. sizeof                     EQU *                    ; size:   $14 (20)
  121.                         ENDR
  122. SampleSizeAtom            RECORD 0
  123. size                     ds.l    1                ; offset: $0 (0)
  124. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stsz' 
  125. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  126. sampleSize                 ds.l    1                ; offset: $C (12)
  127. numEntries                 ds.l    1                ; offset: $10 (16)
  128. sampleSizeTable             ds.l    1                ; offset: $14 (20) <-- really an array of length one
  129. sizeof                     EQU *                    ; size:   $18 (24)
  130.                         ENDR
  131. ShadowSync                RECORD 0
  132. fdSampleNum                 ds.l    1                ; offset: $0 (0)
  133. syncSampleNum             ds.l    1                ; offset: $4 (4)
  134. sizeof                     EQU *                    ; size:   $8 (8)
  135.                         ENDR
  136. ShadowSyncAtom            RECORD 0
  137. size                     ds.l    1                ; offset: $0 (0)
  138. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stsz' 
  139. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  140. numEntries                 ds.l    1                ; offset: $C (12)
  141. shadowSyncTable             ds        ShadowSync        ; offset: $10 (16) <-- really an array of length one
  142. sizeof                     EQU *                    ; size:   $18 (24)
  143.                         ENDR
  144. SampleTableAtom            RECORD 0
  145. size                     ds.l    1                ; offset: $0 (0)
  146. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stbl' 
  147. sampleDescription         ds        SampleDescriptionAtom ; offset: $8 (8)
  148. timeToSampleNum             ds        TimeToSampleNumAtom ; offset: $28 (40)
  149. sampleToChunk             ds        SampleToChunkAtom ; offset: $40 (64)
  150. syncSample                 ds        SyncSampleAtom ; offset: $5C (92)
  151. sampleSize                 ds        SampleSizeAtom ; offset: $70 (112)
  152. chunkOffset                 ds        ChunkOffsetAtom ; offset: $88 (136)
  153. shadowSync                 ds        ShadowSyncAtom ; offset: $9C (156)
  154. sizeof                     EQU *                    ; size:   $B4 (180)
  155.                         ENDR
  156. PublicHandlerInfo        RECORD 0
  157. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  158. componentType             ds.l    1                ; offset: $4 (4)
  159. componentSubType         ds.l    1                ; offset: $8 (8)
  160. componentManufacturer     ds.l    1                ; offset: $C (12)
  161. componentFlags             ds.l    1                ; offset: $10 (16)
  162. componentFlagsMask         ds.l    1                ; offset: $14 (20)
  163. componentName             ds.b    1                ; offset: $18 (24) <-- really an array of length one
  164.                          ORG 26
  165. sizeof                     EQU *                    ; size:   $1A (26)
  166.                         ENDR
  167. HandlerAtom                RECORD 0
  168. size                     ds.l    1                ; offset: $0 (0)
  169. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'hdlr' 
  170. hInfo                     ds        PublicHandlerInfo ; offset: $8 (8)
  171. sizeof                     EQU *                    ; size:   $22 (34)
  172.                         ENDR
  173. ;  a data reference is a private structure 
  174. ; typedef long                             DataRefAtom
  175.  
  176. DataInfoAtom            RECORD 0
  177. size                     ds.l    1                ; offset: $0 (0)
  178. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'dinf' 
  179. dataRef                     ds.l    1                ; offset: $8 (8)
  180. sizeof                     EQU *                    ; size:   $C (12)
  181.                         ENDR
  182. RgnAtom                    RECORD 0
  183. size                     ds.l    1                ; offset: $0 (0)
  184. atomType                 ds.l    1                ; offset: $4 (4)
  185. rgnSize                     ds.w    1                ; offset: $8 (8)
  186. rgnBBox                     ds        Rect            ; offset: $A (10)
  187. data                     ds.b    1                ; offset: $12 (18) <-- really an array of length one
  188.                          ORG 20
  189. sizeof                     EQU *                    ; size:   $14 (20)
  190.                         ENDR
  191. MatteCompressedAtom        RECORD 0
  192. size                     ds.l    1                ; offset: $0 (0)
  193. atomType                 ds.l    1                ; offset: $4 (4)
  194. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  195. matteImageDescription     ds        ImageDescription ; offset: $C (12)
  196. matteData                 ds.b    1                ; offset: $62 (98) <-- really an array of length one
  197.                          ORG 100
  198. sizeof                     EQU *                    ; size:   $64 (100)
  199.                         ENDR
  200. MatteAtom                RECORD 0
  201. size                     ds.l    1                ; offset: $0 (0)
  202. atomType                 ds.l    1                ; offset: $4 (4)
  203. aCompressedMatte         ds        MatteCompressedAtom ; offset: $8 (8)
  204. sizeof                     EQU *                    ; size:   $6C (108)
  205.                         ENDR
  206. ClippingAtom            RECORD 0
  207. size                     ds.l    1                ; offset: $0 (0)
  208. atomType                 ds.l    1                ; offset: $4 (4)
  209. aRgnClip                 ds        RgnAtom            ; offset: $8 (8)
  210. sizeof                     EQU *                    ; size:   $1C (28)
  211.                         ENDR
  212. ;
  213. ;**********************
  214. ;* Media Info Example Structures
  215. ;**********************
  216. ;
  217. VideoMediaInfoHeader    RECORD 0
  218. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  219. graphicsMode             ds.w    1                ; offset: $4 (4)        ;  for QD - transfer mode 
  220. opColorRed                 ds.w    1                ; offset: $6 (6)        ;  opcolor for transfer mode 
  221. opColorGreen             ds.w    1                ; offset: $8 (8)
  222. opColorBlue                 ds.w    1                ; offset: $A (10)
  223. sizeof                     EQU *                    ; size:   $C (12)
  224.                         ENDR
  225. VideoMediaInfoHeaderAtom RECORD 0
  226. size                     ds.l    1                ; offset: $0 (0)        ;  size of Media info 
  227. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'vmhd' 
  228. vmiHeader                 ds        VideoMediaInfoHeader ; offset: $8 (8)
  229. sizeof                     EQU *                    ; size:   $14 (20)
  230.                         ENDR
  231. VideoMediaInfo            RECORD 0
  232. size                     ds.l    1                ; offset: $0 (0)        ;  size of Media info 
  233. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'minf' 
  234. header                     ds        VideoMediaInfoHeaderAtom ; offset: $8 (8)
  235. dataHandler                 ds        HandlerAtom        ; offset: $1C (28)
  236. dataInfo                 ds        DataInfoAtom    ; offset: $3E (62)
  237. sampleTable                 ds        SampleTableAtom ; offset: $4A (74)
  238. sizeof                     EQU *                    ; size:   $FE (254)
  239.                         ENDR
  240. SoundMediaInfoHeader    RECORD 0
  241. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  242. balance                     ds.w    1                ; offset: $4 (4)
  243. rsrvd                     ds.w    1                ; offset: $6 (6)
  244. sizeof                     EQU *                    ; size:   $8 (8)
  245.                         ENDR
  246. SoundMediaInfoHeaderAtom RECORD 0
  247. size                     ds.l    1                ; offset: $0 (0)        ;  size of Media info 
  248. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'vmhd' 
  249. smiHeader                 ds        SoundMediaInfoHeader ; offset: $8 (8)
  250. sizeof                     EQU *                    ; size:   $10 (16)
  251.                         ENDR
  252. SoundMediaInfo            RECORD 0
  253. size                     ds.l    1                ; offset: $0 (0)        ;  size of Media info 
  254. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'minf' 
  255. header                     ds        SoundMediaInfoHeaderAtom ; offset: $8 (8)
  256. dataHandler                 ds        HandlerAtom        ; offset: $18 (24)
  257. dataReference             ds.l    1                ; offset: $3A (58)
  258. sampleTable                 ds        SampleTableAtom ; offset: $3E (62)
  259. sizeof                     EQU *                    ; size:   $F2 (242)
  260.                         ENDR
  261. ;  whatever data the media handler needs goes after the atomType 
  262. MediaInfo                RECORD 0
  263. size                     ds.l    1                ; offset: $0 (0)
  264. atomType                 ds.l    1                ; offset: $4 (4)
  265. sizeof                     EQU *                    ; size:   $8 (8)
  266.                         ENDR
  267. ;
  268. ;**********************
  269. ;* Media Directory Structures
  270. ;**********************
  271. ;
  272. MediaHeader                RECORD 0
  273. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  274. creationTime             ds.l    1                ; offset: $4 (4)        ;  seconds since Jan 1904 when directory was created 
  275. modificationTime         ds.l    1                ; offset: $8 (8)        ;  seconds since Jan 1904 when directory was appended 
  276. timeScale                 ds.l    1                ; offset: $C (12)        ;  start time for Media (Media time) 
  277. duration                 ds.l    1                ; offset: $10 (16)        ;  length of Media (Media time) 
  278. language                 ds.w    1                ; offset: $14 (20)
  279. quality                     ds.w    1                ; offset: $16 (22)
  280. sizeof                     EQU *                    ; size:   $18 (24)
  281.                         ENDR
  282. MediaHeaderAtom            RECORD 0
  283. size                     ds.l    1                ; offset: $0 (0)
  284. atomType                 ds.l    1                ; offset: $4 (4)
  285. header                     ds        MediaHeader        ; offset: $8 (8)
  286. sizeof                     EQU *                    ; size:   $20 (32)
  287.                         ENDR
  288. MediaDirectory            RECORD 0
  289. size                     ds.l    1                ; offset: $0 (0)
  290. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'mdia' 
  291. mediaHeader                 ds        MediaHeaderAtom ; offset: $8 (8)        ;  standard Media information 
  292. mediaHandler             ds        HandlerAtom        ; offset: $28 (40)
  293. mediaInfo                 ds        MediaInfo        ; offset: $4A (74)
  294. sizeof                     EQU *                    ; size:   $52 (82)
  295.                         ENDR
  296. ;
  297. ;**********************
  298. ;* Track Structures
  299. ;**********************
  300. ;
  301.  
  302. TrackEnable                        EQU        $01
  303. TrackInMovie                    EQU        $02
  304. TrackInPreview                    EQU        $04
  305. TrackInPoster                    EQU        $08
  306. TrackHeader                RECORD 0
  307. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  308. creationTime             ds.l    1                ; offset: $4 (4)        ;  seconds since Jan 1904 when directory was created 
  309. modificationTime         ds.l    1                ; offset: $8 (8)        ;  seconds since Jan 1904 when directory was appended 
  310. trackID                     ds.l    1                ; offset: $C (12)
  311. reserved1                 ds.l    1                ; offset: $10 (16)
  312. duration                 ds.l    1                ; offset: $14 (20)        ;  length of track (track time) 
  313. reserved2                 ds.l    1                ; offset: $18 (24)
  314. reserved3                 ds.l    1                ; offset: $1C (28)
  315. layer                     ds.w    1                ; offset: $20 (32)
  316. alternateGroup             ds.w    1                ; offset: $22 (34)
  317. volume                     ds.w    1                ; offset: $24 (36)
  318. reserved4                 ds.w    1                ; offset: $26 (38)
  319. matrix                     ds        MatrixRecord    ; offset: $28 (40)
  320. trackWidth                 ds.l    1                ; offset: $4C (76)
  321. trackHeight                 ds.l    1                ; offset: $50 (80)
  322. sizeof                     EQU *                    ; size:   $54 (84)
  323.                         ENDR
  324. TrackHeaderAtom            RECORD 0
  325. size                     ds.l    1                ; offset: $0 (0)        ;  size of track header 
  326. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'tkhd' 
  327. header                     ds        TrackHeader        ; offset: $8 (8)
  328. sizeof                     EQU *                    ; size:   $5C (92)
  329.                         ENDR
  330. EditListType            RECORD 0
  331. trackDuration             ds.l    1                ; offset: $0 (0)
  332. mediaTime                 ds.l    1                ; offset: $4 (4)
  333. mediaRate                 ds.l    1                ; offset: $8 (8)
  334. sizeof                     EQU *                    ; size:   $C (12)
  335.                         ENDR
  336. EditListAtom            RECORD 0
  337. size                     ds.l    1                ; offset: $0 (0)
  338. atomType                 ds.l    1                ; offset: $4 (4)        ;  = elst 
  339. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  340. numEntries                 ds.l    1                ; offset: $C (12)
  341. editListTable             ds        EditListType    ; offset: $10 (16) <-- really an array of length one
  342. sizeof                     EQU *                    ; size:   $1C (28)
  343.                         ENDR
  344. EditsAtom                RECORD 0
  345. size                     ds.l    1                ; offset: $0 (0)
  346. atomType                 ds.l    1                ; offset: $4 (4)        ;  = edts 
  347. editList                 ds        EditListAtom    ; offset: $8 (8)
  348. sizeof                     EQU *                    ; size:   $24 (36)
  349.                         ENDR
  350. TrackLoadSettings        RECORD 0
  351. preloadStartTime         ds.l    1                ; offset: $0 (0)
  352. preloadDuration             ds.l    1                ; offset: $4 (4)
  353. preloadFlags             ds.l    1                ; offset: $8 (8)
  354. defaultHints             ds.l    1                ; offset: $C (12)
  355. sizeof                     EQU *                    ; size:   $10 (16)
  356.                         ENDR
  357. TrackLoadSettingsAtom    RECORD 0
  358. size                     ds.l    1                ; offset: $0 (0)
  359. atomType                 ds.l    1                ; offset: $4 (4)        ;  = load 
  360. settings                 ds        TrackLoadSettings ; offset: $8 (8)
  361. sizeof                     EQU *                    ; size:   $18 (24)
  362.                         ENDR
  363. TrackDirectory            RECORD 0
  364. size                     ds.l    1                ; offset: $0 (0)
  365. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'trak' 
  366. trackHeader                 ds        TrackHeaderAtom ; offset: $8 (8)        ;  standard track information 
  367. trackClip                 ds        ClippingAtom    ; offset: $64 (100)
  368. edits                     ds        EditsAtom        ; offset: $80 (128)
  369. media                     ds        MediaDirectory ; offset: $A4 (164)
  370. userData                 ds        UserDataAtom    ; offset: $F6 (246)        ;  space for extending with new data types 
  371. sizeof                     EQU *                    ; size:   $108 (264)
  372.                         ENDR
  373. ;
  374. ;***************************************
  375. ;*
  376. ;*   MovieDirectory -
  377. ;*        The MovieDirectory is the top level structure which
  378. ;*        holds the TrackInstance describing where the
  379. ;*        TrackDirectories are.
  380. ;*
  381. ;***************************************
  382. ;
  383. MovieHeader                RECORD 0
  384. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  385. creationTime             ds.l    1                ; offset: $4 (4)        ;  seconds since Jan 1904 when directory was created 
  386. modificationTime         ds.l    1                ; offset: $8 (8)        ;  seconds since Jan 1904 when directory was appended 
  387. timeScale                 ds.l    1                ; offset: $C (12)        ;  Time specifications 
  388. duration                 ds.l    1                ; offset: $10 (16)
  389. preferredRate             ds.l    1                ; offset: $14 (20)        ;  rate at which to play this movie 
  390. preferredVolume             ds.w    1                ; offset: $18 (24)        ;  volume to play movie at 
  391. reserved1                 ds.w    1                ; offset: $1A (26)
  392. preferredLong1             ds.l    1                ; offset: $1C (28)
  393. preferredLong2             ds.l    1                ; offset: $20 (32)
  394. matrix                     ds        MatrixRecord    ; offset: $24 (36)
  395. previewTime                 ds.l    1                ; offset: $48 (72)        ;  time in track the proxy begins (track time) 
  396. previewDuration             ds.l    1                ; offset: $4C (76)        ;  how long the proxy lasts (track time) 
  397. posterTime                 ds.l    1                ; offset: $50 (80)        ;  time in track the proxy begins (track time) 
  398. selectionTime             ds.l    1                ; offset: $54 (84)        ;  time in track the proxy begins (track time) 
  399. selectionDuration         ds.l    1                ; offset: $58 (88)        ;  time in track the proxy begins (track time) 
  400. currentTime                 ds.l    1                ; offset: $5C (92)        ;  time in track the proxy begins (track time) 
  401. nextTrackID                 ds.l    1                ; offset: $60 (96)        ;  next value to use for a TrackID 
  402. sizeof                     EQU *                    ; size:   $64 (100)
  403.                         ENDR
  404. MovieHeaderAtom            RECORD 0
  405. size                     ds.l    1                ; offset: $0 (0)
  406. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'mvhd' 
  407. header                     ds        MovieHeader        ; offset: $8 (8)
  408. sizeof                     EQU *                    ; size:   $6C (108)
  409.                         ENDR
  410. MovieDirectory            RECORD 0
  411. size                     ds.l    1                ; offset: $0 (0)
  412. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'moov' 
  413. header                     ds        MovieHeaderAtom ; offset: $8 (8)
  414. movieClip                 ds        ClippingAtom    ; offset: $74 (116)
  415. ;  Track Directories 
  416. track                     ds        TrackDirectory ; offset: $90 (144) <-- really an array of length one
  417. ;  User data for Movie 
  418. userData                 ds        UserDataAtom    ; offset: $198 (408)    ;  space for user extensions 
  419. sizeof                     EQU *                    ; size:   $1AA (426)
  420.                         ENDR
  421. ;
  422. ;***************************************
  423. ;***************************************
  424. ;
  425. ;  Movie formats and tags 
  426.  
  427.                                                             ; some system defined format IDs 
  428. MOVIE_TYPE                        EQU        'moov'
  429. TRACK_TYPE                        EQU        'trak'
  430. MEDIA_TYPE                        EQU        'mdia'
  431. VIDEO_TYPE                        EQU        'vide'
  432. SOUND_TYPE                        EQU        'soun'
  433. ;  atom id's 
  434.  
  435. MovieAID                        EQU        'moov'
  436. MovieHeaderAID                    EQU        'mvhd'
  437. ClipAID                            EQU        'clip'
  438. RgnClipAID                        EQU        'crgn'
  439. MatteAID                        EQU        'matt'
  440. MatteCompAID                    EQU        'kmat'
  441. TrackAID                        EQU        'trak'
  442. UserDataAID                        EQU        'udta'
  443. TrackHeaderAID                    EQU        'tkhd'
  444. EditsAID                        EQU        'edts'
  445. EditListAID                        EQU        'elst'
  446. MediaAID                        EQU        'mdia'
  447. MediaHeaderAID                    EQU        'mdhd'
  448. MediaInfoAID                    EQU        'minf'
  449. VideoMediaInfoHeaderAID            EQU        'vmhd'
  450. SoundMediaInfoHeaderAID            EQU        'smhd'
  451. GenericMediaInfoHeaderAID        EQU        'gmhd'
  452. GenericMediaInfoAID                EQU        'gmin'
  453. DataInfoAID                        EQU        'dinf'
  454. DataRefAID                        EQU        'dref'
  455. SampleTableAID                    EQU        'stbl'
  456. STSampleDescAID                    EQU        'stsd'
  457. STTimeToSampAID                    EQU        'stts'
  458. STSyncSampleAID                    EQU        'stss'
  459. STSampleToChunkAID                EQU        'stsc'
  460. STShadowSyncAID                    EQU        'stsh'
  461. HandlerAID                        EQU        'hdlr'
  462. STSampleSizeAID                    EQU        'stsz'
  463. STChunkOffsetAID                EQU        'stco'
  464. DataRefContainerAID                EQU        'drfc'
  465. TrackReferenceAID                EQU        'tref'
  466. ColorTableAID                    EQU        'ctab'
  467. LoadSettingsAID                    EQU        'load'
  468. PropertyAtomAID                    EQU        'code'
  469. InputMapAID                        EQU        'imap'
  470.     ENDIF
  471.     ENDIF ; __MOVIESFORMAT__ 
  472.  
  473.